package quatrecentvingtetun;

import org.junit.Test;

import java.util.ArrayList;

import junit.framework.Assert;


/**
 * Created by IntelliJ IDEA.
 * User: sylvain
 * Date: 2 avr. 2009
 * Time: 14:52:39
 * To change this template use File | Settings | File Templates.
 */
public class testDecharge {

      /*@Test
  public void testStart(){

        ArrayList<Joueur> liste=new ArrayList();
        Joueur j1=new Joueur("Michel",10);
        Joueur j2=new Joueur("Toto",7);
        Joueur j3=new Joueur("Pouet",8);

        liste.add(j1);
        liste.add(j2);
        liste.add(j3);

        Decharge d=new Decharge(liste);

        d.Start();
        Assert.assertEquals(true, j1.getJetons() == 25 || j2.getJetons() == 25 || j3.getJetons() == 25);
    }                              */

    @Test
    public void testevalFin(){

        ArrayList<Joueur> liste=new ArrayList();
        Joueur j1=new Joueur("Michel",25);
        Joueur j2=new Joueur("Toto",0);
        Joueur j3=new Joueur("Pouet",0);

        liste.add(j1);
        liste.add(j2);
        liste.add(j3);

        Decharge d=new Decharge(liste);

        Assert.assertTrue(d.evalFin());
        j1.setJetons(23);
        Assert.assertFalse(d.evalFin());
       //Assert.assertFalse()

    }
     @Test
    public void testEvalPerdant(){
        ArrayList<Joueur> liste=new ArrayList();
        Joueur j1=new Joueur("Michel",25);
        Joueur j2=new Joueur("Toto",0);
        Joueur j3=new Joueur("Pouet",0);

        liste.add(j1);
        liste.add(j2);
        liste.add(j3);

        j1.getFigure().setNiveau(1);
        j2.getFigure().setNiveau(3);
        j3.getFigure().setNiveau(2);

        Decharge d=new Decharge(liste);

        Assert.assertEquals(j2.getNom(),liste.get(d.EvalPerdant()).getNom());

         j2.getFigure().setNiveau(2);
         j3.getFigure().setScore(3);
         j2.getFigure().setScore(5);
        Assert.assertEquals(j3.getNom(),liste.get(d.EvalPerdant()).getNom());

         j2.getFigure().setScore(3);
         j2.getFigure().setFigure("211");
         j3.getFigure().setFigure("222");
         Assert.assertEquals(j3.getNom(),liste.get(d.EvalPerdant()).getNom());

         j1.getFigure().setFigure("421");
         j2.getFigure().setNiveau(3);
         j2.getFigure().setScore(2);
         j1.getFigure().setFigure("322");
         j1.getFigure().setScore(1);
         j2.getFigure().setFigure("321");
         j3.getFigure().setNiveau(3);
         j3.getFigure().setScore(2);
         j3.getFigure().setFigure("432");

         System.out.println(j1.getNom()+" -> "+ j1.getFigure().getScore());
         System.out.println(j2.getNom()+" -> "+ j2.getFigure().getNiveau());
         System.out.println(j3.getNom()+" -> "+ j3.getFigure().getNiveau());


         Assert.assertEquals(j2.getNom(),liste.get(d.EvalPerdant()).getNom());


         j2.getFigure().setNiveau(4);
         j2.getFigure().setScore(4);
         j3.getFigure().setNiveau(5);
         j3.getFigure().setScore(1);
         j3.getFigure().setFigure("642");
         //Assert.assertEquals(j3.getNom(),liste.get(d.EvalPerdant()).getNom());

         j2.getFigure().setNiveau(1);
         j2.getFigure().setScore(1);
         j2.getFigure().setFigure("541");
         j3.getFigure().setNiveau(5);
         j3.getFigure().setScore(1);
         j3.getFigure().setFigure("642");
         //Assert.assertEquals(j2.getNom(),liste.get(d.EvalPerdant()).getNom());

     }

    @Test
    public void testEvalVainqueur(){
        ArrayList<Joueur> liste=new ArrayList();
        Joueur j1=new Joueur("Michel",25);
        Joueur j2=new Joueur("Toto",0);
        Joueur j3=new Joueur("Pouet",0);

        liste.add(j1);
        liste.add(j2);
        liste.add(j3);

        j1.getFigure().setNiveau(1);
        j2.getFigure().setNiveau(3);
        j3.getFigure().setNiveau(2);

        Decharge d=new Decharge(liste);

        Assert.assertEquals(j1.getNom(),liste.get(d.EvalVainqueur()).getNom());
         j1.getFigure().setNiveau(4);
         j2.getFigure().setNiveau(4);
         j3.getFigure().setNiveau(5);
         j1.getFigure().setScore(3);
         j2.getFigure().setScore(5);
        Assert.assertEquals(j2.getNom(),liste.get(d.EvalVainqueur()).getNom());

         j2.getFigure().setScore(2);
         j2.getFigure().setFigure("211");
         j3.getFigure().setScore(2);
         j3.getFigure().setFigure("222");
         Assert.assertEquals(j2.getNom(),liste.get(d.EvalVainqueur()).getNom());

         j2.getFigure().setNiveau(3);
         j2.getFigure().setScore(2);
         j2.getFigure().setFigure("321");
         j3.getFigure().setNiveau(3);
         j3.getFigure().setScore(2);
         j3.getFigure().setFigure("432");
         Assert.assertEquals(j3.getNom(),liste.get(d.EvalVainqueur()).getNom());

         j2.getFigure().setNiveau(4);
         j2.getFigure().setScore(4);
         j3.getFigure().setNiveau(5);
         j3.getFigure().setScore(1);
         j3.getFigure().setFigure("642");
         Assert.assertEquals(j2.getNom(),liste.get(d.EvalVainqueur()).getNom());

        j1.getFigure().setNiveau(1);
        j1.getFigure().setScore(1);
        j1.getFigure().setFigure("331");
         j2.getFigure().setNiveau(1);
         j2.getFigure().setScore(1);
         j2.getFigure().setFigure("541");
         j3.getFigure().setNiveau(5);
         j3.getFigure().setScore(1);
         j3.getFigure().setFigure("642");
         Assert.assertEquals(j1.getNom(),liste.get(d.EvalVainqueur()).getNom());

     }
     @Test
    public void testgetFigMinOpposition(){
         ArrayList<Joueur> liste=new ArrayList();
        Joueur j1=new Joueur("Michel",25);
        Joueur j2=new Joueur("Toto",0);
        Joueur j3=new Joueur("Pouet",0);

        liste.add(j1);
        liste.add(j2);
        liste.add(j3);

        j1.getFigure().setFigure("531");
        j2.getFigure().setFigure("322");
        j3.getFigure().setFigure("621");

        Decharge d=new Decharge(liste);
        Assert.assertEquals(j2.getNom(),liste.get(d.getFigMinOpposition()).getNom());
    }
    @Test
    public void TestgetMaxniveau(){
         ArrayList<Joueur> liste=new ArrayList();
        Joueur j1=new Joueur("Michel",25);
        Joueur j2=new Joueur("Toto",0);


        liste.add(j1);
        liste.add(j2);

        Decharge d=new Decharge(liste);
        j1.getFigure().setFigure("211");
        j2.getFigure().setFigure("211");

        Assert.assertEquals(-1,d.getMaxNiveau());

        j1.getFigure().setFigure("421");
        Assert.assertEquals(1,d.getMaxNiveau());


    }

}
